import socket,sys,traceback

port =  50000
host = ''

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.bind((host,port))
s.listen(1)

while True:
	try:
		clientsock ,clientaddr = s.accept()
	except KeyboardInterrupt:
		raise
	except :
		traceback.print_exc()
		continue
	clientsock.settimeout(5)
	
	try :
		print "Got connection from ",clientsock.getpeername()
		while True:
			data = clientsock.recv(4096)
			if not len(data):
				break
			clientsock.sendall(data)

	except socket.timeout:
		print " connection may close"
		sys.exit(0)
	except (KeyboardInterrupt,SystemExit):
		raise
	except:
		traceback.print_exc()

	try :
		clientsock.close()
    	except KeyboardInterrupt :
		raise
	except :
		traceback.print_exc()

	try : 
		clientsock.close()
	except KeyboardInterrupt:
		raise
	except:
		traceback.print_exc()
	
